Shareware Notice: You may use this program freely without paying for it. However, if you would like more maze fonts and more ways to create mazes, you need the full version of the virtual maze book, which comes on a CD-ROM along with a lot of other interesting stuff. To get this full version, you need to pay $20, either to kagi via the register program or directly to me at: Robert Schenk PO Box 404 Rensselaer, IN 47978. You can reach me by e-mail at (You must include your name and address when you pay. If you want to pay with credit card, you must pay thru kagi.) Introduction For a number of years I have written programs which generate mazes. Some of these programs have been used to produce books (such a my Fascinating Mazes, published by Dover), and some of them have been released as shareware or demo-ware. This program is the most complex of my shareware/demoware releases. With it and the typefaces which come with it, you can produce an almost unlimited variety of mazes. However, if you plan to publish them commercially, I will contest your copyright unless you seek my permission. The artwork used in the mazefonts is copyrighted by me, and any commercial use of that artwork without permission violates my copyright. If you pay the shareware fee, you may use mazes in any non-commercial way you desire. Below is an explanation of what each command in the menus does. ********File Menu******** The commands under the file menu let you communicate from the program by saving mazes and preferences, opening and printing mazes, and ending program execution. Open (Command-Key O) This command brings up a standard open dialog box which allows the user to open mazes which had previously been saved by MazeMaker. Files are check as they are opened, and if they are not consistent with MazeMaker guidelines, they will be rejected. Any file with a space (ASCII character 32) in it, which all files of sentences would have, are identified as unacceptable and are rejected as mazes. Save As (Command-Key S) The Save As command allows one to save mazes created in MazeMaker as standard text documents which can be opened by MazeMaker, a word processor, or a page-layout program. MazeMaker constructs mazes mathematically, but then converts them into text. If one looks at that text, it appears as a meaningless jumble of letters and symbols. However, the advantage of converting the maze into a text format is that one can then use the typological tools which have created the desktop publishing revolution to create a tremendous visual variety in mazes. Just as the letter "A" can be printed in a great many styles, so too can an element (or "letter") in a maze. When one opens a maze from MazeMaker in a word-processing or page-layout program, one can use the MazeFonts to control the appearance of that maze just as one can use typefaces to control the appearance of a letter or memo. Append (Command-Key J) One can join mazes together or append a maze to any text document using the Append command. This command is useful if one produces a number of mazes which will all be opened in a word processing program, or to attach a solution of a maze to the maze itself. Save Preferences When one starts MazeMaker, the program checks to see if there is a MazeMaker preferences file in the Preference Folder in the System Folder. The Save Preferences command creates this file. It contains settings for the size of the maze, the type of maze, the display style, and whether or not multiple-exits have been selected. Whenever one invokes this command, the current values for these settings are saved. If there is no MazeMaker preferences file, the program uses default settings. Page Setup This command puts up a standard page setup dialog box. Print (Command-Key P) The print command allows the user to print whatever maze is active. The program prints calculates a point size to have the maze fit on the page. A far more flexible way to print mazes is to save them (using the Append command if a series of mazes is to be printed) and open them from a word-processing or page-layout program. The mazes are saved as text (ASCII) files, and the reason for designing the program to convert mazes into a text format is to allow one to utilize the sophistication of the text-handling tools which have evolved on computers. Quit (Command-Key Q) This command ends the running of MazeMaker. (Command-Key Period will have the same effect.) (If MazeMaker or any other Macintosh program ever "hangs," that is, freezes up, and the user is using System 7, the program can be forced to stop by pressing the Command, option, and esc keys all at the same time.) ********SetUp Menu******** This menu allows you to set a variety of parameters which control the sort of maze the computer creates. Dimensions (Command-Key D) The Dimension command opens up a dialog box which asks you for the height and width for the maze. The minimum size maze you can construct is one four cells wide by four cells high; the maximum is 250 cells by 250 cells. Very large mazes will not display on the monitor. Before displaying a maze, the computer calculates the largest point size it can use and fit the maze on the screen. If the point size it calculates is below four, it will not display the maze. However, the maze is in memory and can be saved, altered, or printed. Type-Standard (Command-Key 1) The default algorithm is Type-Standard, which allows one to construct four different types of mazes. In the dialogue which you get when you select this option is a row of buttons that "tune" the generation of the maze. Often the effects of different choices are subtle and difficult to detect. Sometimes one can see the effect by repeatedly generating mazes. Type-toCenter (Command-Key 2) This method of creating mazes yields a maze in which one must start from the outside and find one's way into the center. It may be the most limited type of maze that I have designed. Type-NewThree (Command-Key 3) This was a second way I developed to construct mazes based on a plane of triangles. It is the only way to get this type of maze in this part of the maze book. Ultimately, you have to try each of these methods to see what they give you. If you do not like the first result, try a few more, and if you still do not like the results, try altering the parameters of the method. ********Style Menu******** The Style menu is very much like a font menu in a word-processing program. One can use it to select various styles for viewing the mazes on the screen. These same styles are available for printing the mazes from within the program. However, for the widest possible range of styles, one must save the mazes, open them up from a word-processing program, and format them using one of the many Maze Fonts contained in the Maze Construction Set. Some of the styles (such as Plain and Thin) work much better than others when displaying very large mazes, while others (such as Bubble and Tunnel) work better than the others when underpasses are used. ********MakeMaze Menu******** This menu is the heart of the program. It is where one goes to make a maze. Computer MakeMaze (Command-Key M) The Computer-MakeMaze command instructs the computer to make a maze using the current settings for maze type and size. The cursor changes to an hourglass which goes through five stages. By watching it, one can estimate how much longer a maze will take to construct. (Very small mazes are almost instantaneous, but very large mazes can take a minutes or so on older, slower Macintoshes.) Person-Make Maze The Person-Make-Maze command allows one to draw a maze rather than having the computer randomly construct the maze. When the command is issued, the program displays an empty maze, which, depending on the style chosen, may be either an empty screen or a screen of closed cells. There are two ways to make mazes. The normal method is to use the mouse. This method is active when the cursor is in the form of a pencil. Simply drag from cell to cell, and you form the paths. Be careful not too drag too fast or you may skip over cells. To close up paths, click on the erase button at the bottom, and your cursor changes into an eraser. Drag it through the cells you want to separate. You can also use the arrow keys to construct the maze. A greyed cursor in the shape of four connected arrows shows this option is active. An 'x' will appear on the upper left of the screen in the first row and column of the maze. Use the arrow keys or the numeric keypad to move the 'x' and construct a maze. To open a path (break down walls), press an arrow key or a 2, 4, 6 or 8. To close up a path (put a wall between cells), hold down the option key while pressing an arrow key or number. To move from one cell to another with no changes, hold down the shift key while an arrow key is pressed. After one has finished a maze, press the return key. Normally one will want to place exits, which can be done with the Visual-Exits command (in the Tinker Menu). If one wants to make further changes, one can edit the maze using the Edit command (under the Tinker Menu.) The Person-MakeMaze command is active only when regular maze has been selected as type, and when the dimensions are set low enough to allow a comfortable point size on the screen. (The larger the screen, the larger the maze one can make.) While one is in person-make-maze mode, only the Quit and Save-Preferences commands are available. ********Tinker Menu******** After one has constructed a maze, one can alter the maze in a variety of ways using the commands in the Tinker menu. Some of these commands alter the mathematical structure of the maze, while others simply change the way in which it will be displayed. Change Exits-Dialog MazeMaker randomly generates exits (or entrances) for a maze. Sometimes by changing the placement of these exits, one can greatly improve a maze. The Change-Exits Dialog command is one of two ways this change can be made. The command throws up a series of dialog boxes asking which type of exit the user wants (on top, bottom, right, left, or inside) and where the new exit should be placed. If the user tries to place exits outside the maze, or to place both exits on the same spot, the program will not accept the response. In addition, with mazes based on triangular cells, certain positions are not possible, and the program will move requests for those positions to adjacent cells which are possible. This command is not available if one has a maze constructed with multiple exits. Change-Exits Visual (Command-E) The second and easier way to change exits in a maze is to use the Change-Exits-Visual Command. When this command is selected, the cursor changes into a gunsight and the programs waits for the user to click on the places where exits are desired. If the user decides not to change exits, clicking twice in the same cell will result in the program rejecting the new entries. The first time this command is invoked, a dialog box with instructions appears. While this command is in effect, the only other commands available are Quit and Save Preferences. Though Change-Exits Visual is easier to use than Change-Exits Dialog, it is not available for a maze which is too large to print on the screen. Also, one cannot set inside exits in outside rows or columns. Both of these can be done with Change-Exits Dialog. Edit Edit allows one to make changes in small mazes of the regular type. It works in same way as the Person-Make Maze command does. Flip (Command-Key F) The Flip command flips a maze horizontally (right side becomes left side), vertically (top becomes bottom), or diagonally (top right becomes bottom left.) Not all types of mazes can be flipped in all ways; for example, a triangle-based maze cannot be flipped diagonally because such a procedure would require a completely new set of typefaces for display. When a flip is not allowed, the button on the Flip dialog box which the command displays is dimmed. Some flips change the even/odd count of cells of hexagonal- or triangle-based mazes. When this happens, the color of the maze is changed and some Tinker or Solve items will be dimmed. The most interesting use of the Flip command is probably the diagonal flip with hexagonal mazes. When flipped, they are converted into text in a very different way than the standard hexagonal mazes are converted, and a different set of display options is possible. Connect Some Deadends Except for mazes which have multiple exits, all MazeMaker mazes have one and only one path between two points in the maze. The Connect Some Deadends can change this property by connecting some of the dead ends to nearby passages. In addition to creating paths that are loops, this command will usually result in multiple solutions. When the command is invoked, the program searches through the maze for deadends, and when it finds one, it will randomly attach it one third of the time and leave it alone two thirds of the time. If one uses the command repeatedly, eventually all deadends inside the maze will be eliminated. (Some of the deadends along the edges will never be connected.) Usually connecting deadends will make the maze simpler to solve, but it could on occasion make it more difficult if it provides loops that are not on a solution path. Reformat As Square Reformat As Hexagon (Command-Key H) Mathematically a maze based on triangular cells is a special case of a maze based on square cells, and a maze based on square cells is a special case of a maze based on hexagonal cells. Taking advantage of these properties, one can transform a triangle-based maze into a square-based maze, and a square-based maze into a hexagonal-based maze, but one cannot reverse the direction. The Reformat command allows these transformations. There are at least two reasons for including this option. First, it was the easiest way to allow the user to solve a triangle-based maze on the screen. Second, it increases visual diversity. A triangle-based maze can be formatted in any of the type styles included as part of the Maze Construction Set. For example, taking a triangle-based maze and reformatting twice will jump it up to a hexagonal-based maze. Flipping it diagonally then gives it a new set of styles in which it can be printed. Enhanced-Four Regular-Four (Command-Key 4) The Enhanced-Four command changes the way a regular maze is converted into text by taking account of the even/odd-ness of rows and columns. As a result, a much greater range of display possibilities is opened up, which can be exploited with the MazeFour typefaces. Once the enhanced command is executed, the command is changed to Regular-Four, which will convert back to regular format. If a maze is put into enhanced format, no further tinkering or solving is possible. If a maze is saved in enhanced format, and then reopened by MazeMaker, it is automatically converted to regular format since the only way to make changes on it is to place it in this format, and there is no purpose to opening a maze if one does not want to Tinker or Solve. ********Solve Menu******** Reduce to Solution Reconstruct Original (Command-Key R) Sometimes the easiest way to evaluate a maze is to look at its solution. The Reduce-to-Solution Command is an easy way to do this. The command closes up all deadends, leaving only those passageways which are part of a solution. When the maze has been solved, the Reduce to Solution is replaced with a Reconstruct-Original command, which restores the maze to its form before it was solved. Hence one can switch back and forth between the maze and its solution by pressing the Command-Key R combination. When a maze has been solved, most of the Tinker menu items will be turned off. Some mazes which have been flipped cannot be solved. To see the solution to such a flipped maze, one must go back to an unflipped version, solve it, and then flip the solution. PersonSolve (Command-Key =) The Person-Solve command allows one to solve smaller mazes of type regular or hexagonal on the screen. Use the arrow keys or the numeric keypad. (For hexagonal mazes, the numeric keypad must be used to move because there are six possible routes out of each cell, not four.) On the numeric keypad, 8 moves up, 4 left, 6 right, 2 down, and diagonal moves are made with the 7,9,1, and 3 keys. Person-Solve starts by positioning the solver at one of the exits. When the other exit is reached, the computer beeps. While in Person-Solve mode, only the Quit and Save-Preferences commands are available. To get out of this mode, press the return key. Help Menu (? in a balloon) Help You are here! To return to the program, close this window by clicking in the close box in the upper left corner.